package com.zuipin.service;

import java.util.List;
import java.util.Map;

import com.zuipin.entity.ThirdAccount;
import com.zuipin.framework.exception.CustomException;
import com.zuipin.framework.result.Result;
import com.zuipin.vo.MemberInfoVo;

/**
 * @ClassName: IThirdAccountService
 * @author wuyicheng
 * @time 2017年3月27日下午3:58:54
 */
public interface IThirdAccountService {
	
	public Map<String, Object> findByMap(Map<String, Object> map);
	
	public ThirdAccount findByThirdAccount(ThirdAccount thirdAccount);
	
	public void insert(ThirdAccount thirdAccount);
	
	public void update(ThirdAccount thirdAccount);
	
	/**
	 * 
	 *
	 * @Title: findByOpenId 
	 * @author: wuyicheng
	 * @date: 2017年5月2日下午7:54:55 
	 * @param openId
	 * @param platformId
	 * @param sysId
	 * @return
	 * @return: ThirdAccount
	 * @throws
	 */
	public ThirdAccount findByOpenId(String openId,String unionId, Long platformId, Long sysId);
	
	/**
	 * 
	 *
	 * @Title: findByMemberId 
	 * @author: wuyicheng
	 * @date: 2017年5月2日下午7:55:02 
	 * @param memberId
	 * @param platformId
	 * @param sysId
	 * @return
	 * @return: ThirdAccount
	 * @throws
	 */
	public ThirdAccount findByMemberId(Long memberId, Long platformId, Long sysId);
	
	/** 
	 *
	 * @Title: findList 
	 * @author: wuyicheng
	 * @date: 2017年5月17日下午6:50:55 
	 * @param memberIds
	 * @param platformId
	 * @param sysId
	 * @return
	 * @return: List<ThirdAccount>
	 * @throws 
	 */
	List<ThirdAccount> findList(List<Long> memberIds, Long platformId, Long sysId);
	
	/** 
	 *
	 * @Title: findList 
	 * @author: wuyicheng
	 * @date: 2017年6月22日下午11:25:26 
	 * @param memberId
	 * @param sysId
	 * @return
	 * @return: List<ThirdAccount>
	 * @throws 
	 */
	public List<ThirdAccount> findListByMemberIdAndSysId(Long memberId, Long sysId);
	
	/**
	 * 判断修改手机号码
	 *
	 * @Title: toUpdatePhone 
	 * @author: wuyicheng
	 * @date: 2017年6月23日上午12:30:45 
	 * @param memberId 当前登录会员
	 * @param sysId 当前会员系统
	 * @param phone 绑定手机号
	 * @param isThirderAccount 是否是第三方账号 true是|false否
	 * @param platformId 平台类型ID
	 * @param isUpdate 是否保存修改
	 * @return
	 * @throws CustomException
	 * @throws
	 */
	public Result<MemberInfoVo> toUpdatePhone(Long memberId, Long sysId, String phone,
			boolean isThirderAccount, Long platformId, boolean isUpdate) throws CustomException;
	
}
